package com.example.pm.ending.server.service;

import com.example.pm.ending.server.module.investor.AddNewInvestorModuleDTO;
import com.example.pm.ending.server.module.investor.InvestorModuleListVO;
import com.example.pm.ending.server.pojo.dto.InvestorUpdateDTO;
import com.example.pm.ending.server.pojo.vo.InvestorStandardVO;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 处理投资商数据的业务接口
 */
@Transactional
public interface IInvestorModuleService {
    /**
     * 启用
     */
    public static final Integer ENABLE_STATE = 1;

    /**
     * 类别“是否启用”的状态文本
     */
    String INVESTOR_ENABLE_TEXT[] = {"禁用", "启用"};

    /**
     * 类别“是否显示在导航栏”的状态文本
     */
    String DISPLAY_TEXT[] = {"隐藏", "显示"};

    /**
     * 添加投资商
     * @param addNewInvestorModuleDTO 投资商数据
     */
    void addNewInvestor(AddNewInvestorModuleDTO addNewInvestorModuleDTO);

    /**
     * 删除投资商
     * @param id 尝试删除的投资商数据的Id
     */
    void deleteInvestor(Long id);


    /**
     * 修改投资商信息
     *
     * @param investorUpdateDTO 投资商的新数据
     */
    void updateInvestorInfoById(InvestorUpdateDTO investorUpdateDTO);

    /**
     * 根据id查询投资商数据详情
     *
     * @param id 投资商id
     * @return 匹配的投资商数据详情，如果没有匹配的数据，则返回null
     */
    InvestorStandardVO getStandardById(Long id);

    /**
     * 查询投资商列表
     * @return 投资商列表
     */
    List<InvestorModuleListVO> getInvestorList();

    /**
     * 启用投资商
     */
    void investorEnable(Long ownerId);

    /**
     * 禁用投资商
     */
    void investorDisEnable(Long ownerId);

}
